<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <meta charset="UTF-8">
    <title>Sucha's Blog - Archive for July, 2022</title>
    <meta name="generator" content="MarkdownProjectCompositor.lua">
    <meta name="author" content="Sucha">
    <meta name="keywords" content="suchang, programming, Linux, Lua">
    <meta name="description" content="Sucha's blog">
    <link rel="shortcut icon" href="../images/ico.png">
    <link rel="stylesheet" type="text/css" href="../styles/blog.css">
    <link rel="stylesheet" type="text/css" href="../styles/prism.min.css">
    <style id="site_theme"></style>
  </head>
  <body>
    <div id="body">
      <div id="text">
	   <!-- Page published by cmark-gfm begins here --><h1>Sucha's Blog ~ Archive for July, 2022</h1>
<p><a id="p1"></a></p>
<div class="date">22年7月17日 周日 11:44</div>
<h2>修改 SeedDMS 镜像上传文档大小限制</h2>
<p>这里主要涉及到修改容器内部文件，以及将其保存为一个本地的修改镜像。另外，baidu 可以知道，SeedDMS 对于上传文档的限制，需要修改 php.ini。</p>
<p>我们先去容器看下文件具体在哪里：</p>
<pre><code class="language-bash">$ docker exec -it seeddms /bin/bash
root@c31cfcd7168f:/# cd /
root@c31cfcd7168f:/# find . -name &quot;php.ini&quot;
./usr/local/etc/php/php.ini
root@c31cfcd7168f:/# exit
$ docker cp seeddms:/usr/local/etc/php/php.ini  php.ini
</code></pre>
<p>然后还是 baidu，看下需要修改 php.ini 的哪些配置：</p>
<ul>
<li>memory_limit 内存设置限制</li>
<li>max_execution_time 程序执行时间限制</li>
<li>post_max_size 最大POST数据限制</li>
<li>upload_max_filesize 最大上传文件大小限制</li>
</ul>
<p>对于手头的这个镜像，只需要修改后面 3 个就好了</p>
<ul>
<li>max_execution_time = 60</li>
<li>post_max_size = 0</li>
<li>upload_max_filesize = 300M</li>
</ul>
<p>然后将其拷贝回容器，并保存这个修改后的容器为镜像</p>
<pre><code class="language-bash">$ docker cp php.ini seeddms:/usr/local/etc/php/php.ini
$ docker commit seeddms my_seeddms
</code></pre>
<p>停止之前的容器，使用新的镜像运行</p>
<pre><code class="language-bash">$ docker stop seeddms
$ docker rm seeddms
$ docker run --name seeddms \
-d \
--restart=always \
-v /HOST/data:/var/www/seeddms/data \
-v /HOST/conf:/var/www/seeddms/conf \
-v /HOST/ext:/var/www/seeddms/www/ext \
-p 80:80 my_seeddms
</code></pre>
<p>这样就行了。</p>
<div class="category"><a href="CategoryLinux.html">CategoryLinux</a> / <a href="2022-07.html#p1">Permalink</a> / <a href="https://github.com/lalawue/homepage/discussions/categories/blog" target="_blank">Discussion</a></div>
<p><a id="p0"></a></p>
<div class="date">22年7月16日 周六 16:31</div>
<h2>配置 SeedDMS</h2>
<p>先说一个悲伤的故事，之前在百度网盘上面存了不少书籍，包括技术书籍以及小说等等，然后是用 QQ 账号登陆的，后来不记得是登陆后要绑定手机号还是干嘛，绑定完了之后，好多书都不见了！</p>
<p>也许我之前的手机号注册过了吧，然后导致账号合并了之类的，真的搞不懂。当时我是非常后悔没有做备份，因为之前网盘有做活动，永久 2T，怪不得 2T 永远用不完！</p>
<p>就想着搞一个文档管理系统，比如<a href="https://medevel.com/dms-cloud-file-sharing-opensource/?continueFlag=bf311ba190bf0d160b5d3461e092f0f4">这篇文章介绍的</a>。</p>
<p>因为是个人使用，运行在类似 NAS 一样的小机器上，可以的话，就不需要跑起来类似 MySQL 或者 PostgreSQL 这样的 DB 了。实话说，是真的用不上牛刀。</p>
<p>于是试了一下 <a href="https://www.seeddms.org/">SeedDMS</a>，PHP 搭建的，可以只用 SQLite。</p>
<p>后来才发现，我这一个前端开发，搞不懂 PHP 的安装，apache/nginx/openresty 难不倒我，但是 php 的安装难倒我了，你说有个 index.php 可是先要运行起来才能安装，但网站可不是那么简单就能运行的，先搞懂 pear 目录，简写意思是 <a href="https://pear.php.net/">PHP Extension Application Repository</a>，然后呢，请使用 <a href="https://getcomposer.org/">Composer</a>，谢谢～</p>
<p>我这的魔怔了，无比怀念 go build 可以指定导出不同平台的 binary，然后配置问题不就是 YAML 或者 JSON 搞定，再说，我如果没有提供配置文件，就不能使用 default config running 吗，笑了。</p>
<p>于是就回到了其他的路子上，不再考虑自己源码安装了。试了几个 github 上别人提供的 docker 镜像，最后选了<a href="https://github.com/eraelpeha/docker-seeddms">eraelpeha/docker-seeddms</a></p>
<pre><code class="language-bash">$ docker pull eraelpeha/seeddms
$ docker run --name seeddms -p 8080:80 eraelpeha/seeddms
</code></pre>
<p>浏览器访问一下服务端的 8080 端口，应该可以看到提示了，然后就可以通过 8080/install 安装了。</p>
<p>因为后续网站配置，文档啥的还是要保存在 docker 容器之外的目录，所以先 docker cp 容器里面的配置文件出来，待会再挂载本地 volume 上去：</p>
<pre><code class="language-bash">$ docker cp seeddms:/var/www/seeddms/data /HOST/data
$ docker cp seeddms:/var/www/seeddms/conf /HOST/conf
$ docker cp seeddms:/var/www/seeddms/www/ext /HOST/ext
$ chmod -R 777 /HOST/data /HOST/conf /HOST/ext
</code></pre>
<p>上面也将 data 目录配置到外面了。</p>
<p>使用 docker ps -a 查看运行的 image，stop 后，rm 掉，再运行一下看看，这里配置为启动 background 加载了，然后设置为 80 端口</p>
<pre><code class="language-bash">$ docker run --name seeddms \
-d \
--restart=always \
-v /HOST/data:/var/www/seeddms/data \
-v /HOST/conf:/var/www/seeddms/conf \
-v /HOST/ext:/var/www/seeddms/www/ext \
-p 80:80 eraelpeha/seeddms
</code></pre>
<p>最后，设置 docker 开机启动吧</p>
<pre><code class="language-bash">$ systemctl start docker
</code></pre>
<p>重启后，发现文档服务起来了，之前的设置也都还有效，这样就配置完了。</p>
<p>搞了一个下午，就感觉 php 太坑了，跟 go 的起步差了十万八千里。</p>
<div class="category"><a href="CategoryLinux.html">CategoryLinux</a> / <a href="2022-07.html#p0">Permalink</a> / <a href="https://github.com/lalawue/homepage/discussions/categories/blog" target="_blank">Discussion</a></div>
<!-- Page published by cmark-gfm ends here -->
  <div id="foot">2004-<script>var d = new
	Date();document.write(d.getFullYear())</script> &copy;
	Sucha. Powered by MarkdownProjectCompositor.
  </div>
  </div><!-- text -->
  <div id="sidebar">
  </div><!-- sidebar -->
  <script src="../js/prism.min.js" async="async"></script>
  <script src="../js/blog_sidebar.js"></script>
  </div> <!-- body -->
</body>
</html>